from flask import Flask,render_template , jsonify  , request
from blueprint.user import bpp
import requests
from bs4 import BeautifulSoup
app = Flask(__name__)
app.register_blueprint(bpp)

# @app.route('/')
# def index():  # put application's code here
#     return render_template('index.html')


# 主页，渲染 index.html 页面
@app.route('/')
def index():
    return render_template('index.html')


# 爬取数据的接口
@app.route('/crawl', methods=['POST'])
def crawl():
    url = request.json.get('url')  # 获取前端传递的 URL

    # 判断 URL 格式是否有效
    if not url or not url.startswith(('http://', 'https://')):
        return jsonify({'error': '无效的 URL'})

    try:
        # 请求网页内容
        response = requests.get(url)
        response.raise_for_status()  # 如果请求失败，抛出异常

        # 使用 BeautifulSoup 解析网页
        soup = BeautifulSoup(response.text, 'html.parser')

        # 提取网页中的标题作为示例数据
        title = soup.title.string if soup.title else '无标题'

        # 返回爬取到的数据
        return jsonify({'title': title, 'url': url})
    except Exception as e:
        return jsonify({'error': f'爬取失败: {str(e)}'})



if __name__ == '__main__':
    app.run()
